package main

import "fmt"

// args...int 可传多个值
func test(args ...int) {
	// 函数内部处理可变参数时，可将可变参数当作切片来处理
	for i := 0; i < len(args); i++ {
		fmt.Println(args[i])
	}
}

// type 也可以为函数取别名
type myFunc func(args ...int)

func test02(num1 int, num2 float64, productFunc myFunc) {
	fmt.Println("--------test02")
}

func test04(num1 int, num2 int) (sum int, sub int) {
	sum = num1 + num2
	sub = num1 - num2
	return
}

func main() {
	test()
	fmt.Println("-------")
	test(33, 52, 65, 76)

	a := test
	a(10)

	test02(2, 3.14, a)

	// type 自定义变量类型
	type oneInt int
	var num3 oneInt = 999
	fmt.Println("num3: ", num3)

	r1, r2 := test04(25, 20)
	fmt.Println("test04: ", r1, r2)
}
